package com.augurit.common.util;

import java.util.HashMap;
import java.util.Map;


/**
 * JSON工具类
 */
public class JsonUtils {
	
	/**
	 * 判断JSON字符串是否为数组的
	 * @param jsonString
	 * @return
	 */
	public static boolean isArrayJson(final String jsonString){
		boolean result = false;
		
		if(jsonString != null && jsonString.trim().length() > 0){
			
			int length = jsonString.length();
			String firstChar = jsonString.substring(0, 1);	//首字符
			String lastChar = jsonString.substring(length - 1, length);	//最后一个字符
			
			if(firstChar.equals("[") && lastChar.equals("]"))
				result = true;
		}
		
		return result;
	}
	
	/**
	 * 根据指定JSON字符串判断是否封装了多个对象
	 * @param jsonString
	 * @return 返回1表示为对象数组，0表示为对象，-1表示非JSON字符串
	 */
	public static int existBeansFromJson(final String jsonString){
		if(isArrayJson(jsonString))
			return 1;
		else if(isObjectJson(jsonString))
			return 0;
		else
			return -1;
	}
	
	/**
	 * 判断JSON字符串是否为对象的
	 * @param jsonString
	 * @return
	 */
	public static boolean isObjectJson(final String jsonString){
		boolean result = false;
		
		if(jsonString != null && jsonString.trim().length() > 0){
			
			int length = jsonString.length();
			String firstChar = jsonString.substring(0, 1);	//首字符
			String lastChar = jsonString.substring(length - 1, length);	//最后一个字符
			
			if(firstChar.equals("{") && lastChar.equals("}"))
				result = true;
		}
		
		return result;
	}
	
	/**
	 * 将JSON字符串转换为Map
	 * @param jsonString
	 * @return
	 */
	public static Map<String, String> convertToMap(final String jsonString){
		if(isObjectJson(jsonString)){
			
			String json = jsonString.substring(1, jsonString.length()-1);
			String[] propInfos = json.split(",");
			
			if(propInfos != null && propInfos.length > 0){
				Map<String, String> propMap = new HashMap();
				
				for(String propInfo : propInfos){
					String[] prop = propInfo.split(":");
					String key = prop[0].substring(1, prop[0].length()-1);
					String value = prop[1].substring(1, prop[1].length()-1);
					propMap.put(key, value);
				}
				
				return propMap;
			}
		}
		return null;
	}
	
	public static void main(String[] args) {
		// TODO 自动生成方法存根
	}
}


